package https

import "time"

// 声明URL请求结构信息
//
//	url		要请求的网址信息
//	opts	可选参数，针对此网址进行的配置项追加
func New(url string, opts ...OptionFunc) *CURL {
	// 默认配置项加载
	opt := Option{
		time_out:   _default.timeOut,
		cache_time: _default.cacheTime,
	}
	// 配置项设置
	for i := 0; i < len(opts); i++ {
		opts[i](&opt)
	}
	// 声明配置项的值
	return &CURL{
		Uri:        url,
		option:     &opt,
		CreateTime: time.Now(),
	}
}

// 设置Option选项[此参数需要在Get/Post/PostJson之前进行调用，若在之后调用的话会失去作用]
//
//	opts	可选参数，针对此网址进行的配置项追加
func (c *CURL) WithOption(opts ...OptionFunc) *CURL {
	// 配置项设置
	for i := 0; i < len(opts); i++ {
		opts[i](c.option)
	}
	return c
}
